DLE 
                                                                                    Pg 16-6

Used in compiled databases to release control back to the 4D engine. 4D cannot interrupt code where no 4D commands are called. For instance, a  For loop with millions of iterations cannot be interupted without at least one 4D command. If no 4D commands are needed, use IDLE.

IDLE is designed only for 4D COMPILER. This command is useful only in compiled databases when user defined procedures are written such that no calls are made back to the 4th DIMENSION engine. For instance, if a procedure has a For loop in which no 4th DIMENSION commands are executed, the loop could not be interrupted by a process installed with ON ERIAL ORT ALL or ON VENT ALL nor could a user switch to another application under MultiFinder. In this case IDLE should be inserted to allow 4th DIMENSION to trap events. Of course if you do not want any interruptions, IDLE can be left out.

In the following example the loop would never terminate in a compiled database without the call to IDLE:

    ON EVENT CALL ("EventProc") 
    $Done:=False 
    MESSAGE ("Processing..."+Char (13)+"Type any key to 
                 interrupt...") 
    Repeat    `  Do some processing that doesn't involve a 4D command. 
       IDLE 
    Until ($Done)

See also:  har,  or,  ESSAGE, ON VENT ALL, 
               ON ERIAL ORT ALL,  epeat